/**
*  Resumen				
*  Objeto		       	: RepositorioDatos.java
*  Descripci�n		  	: Clase utilizada para realizar la carga de objetos en sesion al momento de iniciar la aplicacion
*  Fecha de Creaci�n    : 09/08/2013.
*  PE de Creaci�n 		: PE-QUEJAS.
*  Autor			   	: Joseph Mena
*  -------------------------------------------------------------------------------------
*  Modificaciones
*  Motivo	            Fecha          Nombre         Descripci�n
*  -------------------------------------------------------------------------------------
*
*/

package pe.gob.osce.sirenas.wd.util;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import javax.faces.model.SelectItem;

import pe.gob.osce.sirenas.model.EstadoDTO;
import pe.gob.osce.sirenas.model.MotivoDTO;
 
public class RepositorioDatos implements Serializable{

	/** Variable estatica que identifica el serial de la clase*/
	private static final long serialVersionUID = 6780545380640652091L;
	private Date maxDate=new Date();
	
	/** Variable que guarda el tipo de sexo*/
	private HashMap<String, String> idTipoSexo;
	/** Variable que guarda la lista de tipos de sexo*/
	private ArrayList<SelectItem> listaTipoSexo;
	private Long regionActiva;
	/** Variable que guarda el region*/
	private HashMap<String, String> idRegion;
	/** Variable que guarda la lista de regioness*/
	private ArrayList<SelectItem> listaRegion;
	/** Variable que guarda la provincia*/
	private HashMap<String, String> idProvincia;
	/** Variable que guarda la lista de provincias*/
	private ArrayList<SelectItem> listaProvincia;
	/** Variable que guarda el distrito*/
	private HashMap<String, String> idDistrito;
	/** Variable que guarda la lista de distritos*/
	private ArrayList<SelectItem> listaDistrito;
	/** Variable que guarda la lista de distritos*/
	private ArrayList<SelectItem> listaPais;
	
	/** Variable que guarda la lista de distritos*/
	private ArrayList<SelectItem> listaOrganoEmision;
	/** Variable que guarda la lista de distritos*/
	private ArrayList<SelectItem> listaTipoActo;
	private ArrayList<SelectItem> listaZonas;
	private ArrayList<SelectItem> listaVias;
	
	private List<MotivoDTO> listaMotivosGeneral;
	private ArrayList<SelectItem> listaMotivosIncidencia;
	private ArrayList<SelectItem> listaMotivosReestablecer;
	
	private Integer plazoSolicitud;

	/** Variable que guarda la lista de regioness*/
	private ArrayList<SelectItem> listaAreaProfesion;
	/** Variable que guarda la lista de regioness*/
	private ArrayList<SelectItem> listaCentroEstudios;
	
	/** Variable que guarda la lista de MateriaControversia*/
	private ArrayList<SelectItem> listaMateriaControversia;
	/** Variable que guarda la lista de correlativos*/
	private HashMap<String, Long> correlativos;

	List<EstadoDTO> listaEstadosIncidencia;
	/** Variable que guarda la lista de MateriaControversia*/
	private ArrayList<SelectItem> listaEstadoFiscalizacion;
	private ArrayList<SelectItem> listaEstadoRegistro;
	/** Tiene toda la lista de Estado de la BD con sus atributos Completos*/
	private List<EstadoDTO> listaEstadosGeneral;

	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaReglas;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaGenero;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaParametros;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaGradoObtenido;
	
	/** Variable que guarda la lista de tipos Grados Titulo */
	private ArrayList<SelectItem> listaGradoTitulo;
	/** Variable que guarda la lista de tipos de cargo */
	private ArrayList<SelectItem> listaTipoFormacion;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaTipoActividad;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaTipoDuracion;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaTipoArbitraje;
		
	/**Variable que guarda la lista de tipos Documento Identidad*/
	private ArrayList<SelectItem> listaTipoDocumentoIdentidad;
	
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaModalidadArbitraje;
	/**Variable que guarda la lista de tipos de cargo*/
	private ArrayList<SelectItem> listaTipoFicha;
	public RepositorioDatos() {
	}

	/**
	 * Metodo que permite obtener idTipoSexo.
	 * @return idTipoSexo , tipo HashMap<String,String>.
	 */
	public HashMap<String, String> getIdTipoSexo() {
		return idTipoSexo;
	}


	/**
	 * Permite actualizar idTipoSexo.
	 * @param idTipoSexo, tipo HashMap<String,String>.
	 */
	public void setIdTipoSexo(HashMap<String, String> idTipoSexo) {
		this.idTipoSexo = idTipoSexo;
	}


	/**
	 * Metodo que permite obtener listaTipoSexo.
	 * @return listaTipoSexo , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoSexo() {
		return listaTipoSexo;
	}


	/**
	 * Permite actualizar listaTipoSexo.
	 * @param listaTipoSexo, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoSexo(ArrayList<SelectItem> listaTipoSexo) {
		this.listaTipoSexo = listaTipoSexo;
	}


	/**
	 * Metodo que permite obtener idRegion.
	 * @return idRegion , tipo HashMap<String,String>.
	 */
	public HashMap<String, String> getIdRegion() {
		return idRegion;
	}


	/**
	 * Permite actualizar idRegion.
	 * @param idRegion, tipo HashMap<String,String>.
	 */
	public void setIdRegion(HashMap<String, String> idRegion) {
		this.idRegion = idRegion;
	}


	/**
	 * Metodo que permite obtener listaRegion.
	 * @return listaRegion , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaRegion() {
		return listaRegion;
	}


	/**
	 * Permite actualizar listaRegion.
	 * @param listaRegion, tipo ArrayList<SelectItem>.
	 */
	public void setListaRegion(ArrayList<SelectItem> listaRegion) {
		this.listaRegion = listaRegion;
	}


	/**
	 * Metodo que permite obtener idProvincia.
	 * @return idProvincia , tipo HashMap<String,String>.
	 */
	public HashMap<String, String> getIdProvincia() {
		return idProvincia;
	}


	/**
	 * Permite actualizar idProvincia.
	 * @param idProvincia, tipo HashMap<String,String>.
	 */
	public void setIdProvincia(HashMap<String, String> idProvincia) {
		this.idProvincia = idProvincia;
	}


	/**
	 * Metodo que permite obtener listaProvincia.
	 * @return listaProvincia , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaProvincia() {
		return listaProvincia;
	}


	/**
	 * Permite actualizar listaProvincia.
	 * @param listaProvincia, tipo ArrayList<SelectItem>.
	 */
	public void setListaProvincia(ArrayList<SelectItem> listaProvincia) {
		this.listaProvincia = listaProvincia;
	}


	/**
	 * Metodo que permite obtener idDistrito.
	 * @return idDistrito , tipo HashMap<String,String>.
	 */
	public HashMap<String, String> getIdDistrito() {
		return idDistrito;
	}


	/**
	 * Permite actualizar idDistrito.
	 * @param idDistrito, tipo HashMap<String,String>.
	 */
	public void setIdDistrito(HashMap<String, String> idDistrito) {
		this.idDistrito = idDistrito;
	}


	/**
	 * Metodo que permite obtener listaDistrito.
	 * @return listaDistrito , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaDistrito() {
		return listaDistrito;
	}


	/**
	 * Permite actualizar listaDistrito.
	 * @param listaDistrito, tipo ArrayList<SelectItem>.
	 */
	public void setListaDistrito(ArrayList<SelectItem> listaDistrito) {
		this.listaDistrito = listaDistrito;
	}


	/**
	 * Metodo que permite obtener listaGradoObtenido.
	 * @return listaGradoObtenido , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaGradoObtenido() {
		return listaGradoObtenido;
	}


	/**
	 * Permite actualizar listaGradoObtenido.
	 * @param listaGradoObtenido, tipo ArrayList<SelectItem>.
	 */
	public void setListaGradoObtenido(ArrayList<SelectItem> listaGradoObtenido) {
		this.listaGradoObtenido = listaGradoObtenido;
	}

	
	public ArrayList<SelectItem> getListaGradoTitulo() {
		return listaGradoTitulo;
	}

	public void setListaGradoTitulo(ArrayList<SelectItem> listaGradoTitulo) {
		this.listaGradoTitulo = listaGradoTitulo;
	}

	/**
	 * Metodo que permite obtener regionActiva.
	 * @return regionActiva , tipo Long.
	 */
	public Long getRegionActiva() {
		return regionActiva;
	}


	/**
	 * Permite actualizar regionActiva.
	 * @param regionActiva, tipo Long.
	 */
	public void setRegionActiva(Long regionActiva) {
		this.regionActiva = regionActiva;
	}

	/**
	 * Metodo que permite obtener listaTipoFormacion.
	 * @return listaTipoFormacion , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoFormacion() {
		return listaTipoFormacion;
	}

	/**
	 * Permite actualizar listaTipoFormacion.
	 * @param listaTipoFormacion, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoFormacion(ArrayList<SelectItem> listaTipoFormacion) {
		this.listaTipoFormacion = listaTipoFormacion;
	}

	/**
	 * Metodo que permite obtener listaTipoActividad.
	 * @return listaTipoActividad , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoActividad() {
		return listaTipoActividad;
	}

	/**
	 * Permite actualizar listaTipoActividad.
	 * @param listaTipoActividad, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoActividad(ArrayList<SelectItem> listaTipoActividad) {
		this.listaTipoActividad = listaTipoActividad;
	}

	/**
	 * Metodo que permite obtener listaTipoDuracion.
	 * @return listaTipoDuracion , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoDuracion() {
		return listaTipoDuracion;
	}

	/**
	 * Permite actualizar listaTipoDuracion.
	 * @param listaTipoDuracion, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoDuracion(ArrayList<SelectItem> listaTipoDuracion) {
		this.listaTipoDuracion = listaTipoDuracion;
	}

	/**
	 * Metodo que permite obtener listaTipoArbitraje.
	 * @return listaTipoArbitraje , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoArbitraje() {
		return listaTipoArbitraje;
	}

	/**
	 * Permite actualizar listaTipoArbitraje.
	 * @param listaTipoArbitraje, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoArbitraje(ArrayList<SelectItem> listaTipoArbitraje) {
		this.listaTipoArbitraje = listaTipoArbitraje;
	}

	/**
	 * Metodo que permite obtener listaAreaProfesion.
	 * @return listaAreaProfesion , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaAreaProfesion() {
		return listaAreaProfesion;
	}

	/**
	 * Permite actualizar listaAreaProfesion.
	 * @param listaAreaProfesion, tipo ArrayList<SelectItem>.
	 */
	public void setListaAreaProfesion(ArrayList<SelectItem> listaAreaProfesion) {
		this.listaAreaProfesion = listaAreaProfesion;
	}

	
	
	public ArrayList<SelectItem> getListaModalidadArbitraje() {
		return listaModalidadArbitraje;
	}

	public void setListaModalidadArbitraje(
			ArrayList<SelectItem> listaModalidadArbitraje) {
		this.listaModalidadArbitraje = listaModalidadArbitraje;
	}

	/**
	 * Metodo que permite obtener listaCentroEstudios.
	 * @return listaCentroEstudios , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaCentroEstudios() {
		return listaCentroEstudios;
	}

	/**
	 * Permite actualizar listaCentroEstudios.
	 * @param listaCentroEstudios, tipo ArrayList<SelectItem>.
	 */
	public void setListaCentroEstudios(ArrayList<SelectItem> listaCentroEstudios) {
		this.listaCentroEstudios = listaCentroEstudios;
	}

	
	/**
	 * Metodo que permite obtener listaMateriaControversia.
	 * @return listaMateriaControversia , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaMateriaControversia() {
		return listaMateriaControversia;
	}
	
	/**
	 * Permite actualizar listaMateriaControversia.
	 * @param listaMateriaControversia, tipo ArrayList<SelectItem>.
	 */
	public void setListaMateriaControversia(
			ArrayList<SelectItem> listaMateriaControversia) {
		this.listaMateriaControversia = listaMateriaControversia;
	}


	/**
	 * Metodo que permite obtener listaEstadoFiscalizacion.
	 * @return listaEstadoFiscalizacion , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaEstadoFiscalizacion() {
		return listaEstadoFiscalizacion;
	}

	/**
	 * Permite actualizar listaEstadoFiscalizacion.
	 * @param listaEstadoFiscalizacion, tipo ArrayList<SelectItem>.
	 */
	public void setListaEstadoFiscalizacion(
			ArrayList<SelectItem> listaEstadoFiscalizacion) {
		this.listaEstadoFiscalizacion = listaEstadoFiscalizacion;
	}

	/**
	 * Metodo que permite obtener listaEstadoRegistro.
	 * @return listaEstadoRegistro , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaEstadoRegistro() {
		return listaEstadoRegistro;
	}

	/**
	 * Permite actualizar listaEstadoRegistro.
	 * @param listaEstadoRegistro, tipo ArrayList<SelectItem>.
	 */
	public void setListaEstadoRegistro(ArrayList<SelectItem> listaEstadoRegistro) {
		this.listaEstadoRegistro = listaEstadoRegistro;
	}

	/**
	 * Metodo que permite obtener listaEstadosGeneral.
	 * @return listaEstadosGeneral , tipo List<EstadoDTO>.
	 */
	public List<EstadoDTO> getListaEstadosGeneral() {
		return listaEstadosGeneral;
	}

	/**
	 * Permite actualizar listaEstadosGeneral.
	 * @param listaEstadosGeneral, tipo List<EstadoDTO>.
	 */
	public void setListaEstadosGeneral(List<EstadoDTO> listaEstadosGeneral) {
		this.listaEstadosGeneral = listaEstadosGeneral;
	}

	/**
	 * Metodo que permite obtener listaPais.
	 * @return listaPais , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaPais() {
		return listaPais;
	}

	/**
	 * Permite actualizar listaPais.
	 * @param listaPais, tipo ArrayList<SelectItem>.
	 */
	public void setListaPais(ArrayList<SelectItem> listaPais) {
		this.listaPais = listaPais;
	}

	/**
	 * Metodo que permite obtener listaParametros.
	 * @return listaParametros , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaParametros() {
		return listaParametros;
	}

	/**
	 * Permite actualizar listaParametros.
	 * @param listaParametros, tipo ArrayList<SelectItem>.
	 */
	public void setListaParametros(ArrayList<SelectItem> listaParametros) {
		this.listaParametros = listaParametros;
	}
	
	/**
	 * Metodo que permite obtener maxDate.
	 * @return maxDate , tipo Date.
	 */
	public Date getMaxDate() {
		return maxDate;
	}

	public boolean getIndIncidencia(Long idEstado){
		boolean indIncidencia=false;
		for (EstadoDTO estadoDTO : listaEstadosGeneral) {
			if(estadoDTO.getIdEstado()==idEstado){
				indIncidencia=estadoDTO.getIndIncidencia();
			}
		}		
		return indIncidencia;
	}
	/**Obtengo el Indicador de Estado, que determina si el sistema actualizara el Estado de la Ficha*/
	public boolean getIndUpdateEstado(Long idEstado){
		boolean IndUpdateEstado=false;
		for (EstadoDTO estadoDTO : listaEstadosGeneral) {
			if(estadoDTO.getIdEstado()==idEstado){
				IndUpdateEstado=estadoDTO.getIndUpdEstado();
			}
		}		
		return IndUpdateEstado;
	}
	
	public String getLabelTipoZona(Long idTipoZona){
		String labelTipoZona="";
		for (SelectItem selectItem : listaZonas) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idTipoZona){
					labelTipoZona= selectItem.getLabel();
				}
		}		
		return labelTipoZona;
	}
	
	public String getLabelTipoVia(Long idTipoVia){
		String labelTipoVia="";
		for (SelectItem selectItem : listaZonas) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idTipoVia){
					labelTipoVia= selectItem.getLabel();
				}
		}		
		return labelTipoVia;
	}
	
	public String getLabelAreaProfesion(Long idAreaProfesion){
		String labelAreaProfesion=null;
		for (SelectItem selectItem : listaAreaProfesion) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idAreaProfesion){
					labelAreaProfesion= selectItem.getLabel();
				}
		}		
		return labelAreaProfesion;
	}
	
	public String getLabelCentroEstudios(Long idCentroEstudios){
		String labelCentroEstudios=null;
		for (SelectItem selectItem : listaCentroEstudios) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idCentroEstudios){
					labelCentroEstudios= selectItem.getLabel();
				}
		}		
		return labelCentroEstudios;
	}
	
	public String getLabelPais(Long idPais){
		String labelPais=null;
		for (SelectItem selectItem : listaPais) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idPais){
					labelPais= selectItem.getLabel();
				}
		}		
		return labelPais;
	}
	
	public String getLabelRegion(Long idRegion){
		String labelRegion=null;
		for (SelectItem selectItem : listaRegion) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idRegion){
					labelRegion= selectItem.getLabel();
				}
		}		
		return labelRegion;
	}
	
	public String getLabelProvincia(Long idProvincia){
		String labelProvincia=null;
		for (SelectItem selectItem : listaProvincia) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idProvincia){
					labelProvincia= selectItem.getLabel();
				}
		}		
		return labelProvincia;
	}
	
	public String getLabelDistrito(Long idDistrito){
		String labelDistrito=null;
		for (SelectItem selectItem : listaDistrito) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idDistrito){
					labelDistrito= selectItem.getLabel();
				}
		}		
		return labelDistrito;
	}

	
	public Long getValueParametro(String descParametro){
		Long valueParametro=null;
		for (SelectItem selectItem : listaParametros) {
			if(!selectItem.getValue().equals(""))
				if(selectItem.getLabel().trim().equals(descParametro)){
					valueParametro= Long.parseLong(selectItem.getValue().toString());
				}
		}
		return valueParametro;
	}
	public String getLabelParametro(Long idParametro){
		String labelParametro=null;
		for (SelectItem selectItem : listaParametros) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idParametro){
					labelParametro= selectItem.getLabel();
				}
		}
		return labelParametro;
	}
	
	/**Lo utilizo para el proceso de Converio de Tipo Duracion en Acreditacion Docencia*/
	public String getDescriptionParametro(Long idParametro){
		String labelParametro=null;
		for (SelectItem selectItem : listaParametros) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idParametro){
					labelParametro= selectItem.getDescription();
				}
		}
		return labelParametro;
	}
	public String getLabelMateriaControversia(Long idMateriaControversia){
		String labelMateriaControversia=null;
		for (SelectItem selectItem : listaMateriaControversia) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idMateriaControversia){
					labelMateriaControversia= selectItem.getLabel();
				}
		}		
		return labelMateriaControversia;
	}
	public String getLabelModalidadArbitraje(Long idModalidadArbitraje){
		String labelModalidadArbitraje=null;
		for (SelectItem selectItem : listaParametros) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idModalidadArbitraje){
					labelModalidadArbitraje= selectItem.getDescription();
				}
		}		
		return labelModalidadArbitraje;
	}
	public String getDescModalidadArbitraje(Long idModalidadArbitraje){
		String labelModalidadArbitraje=null;
		for (SelectItem selectItem : listaParametros) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idModalidadArbitraje){
					labelModalidadArbitraje= selectItem.getDescription();
				}
		}		
		return labelModalidadArbitraje;
	}
	public Integer getValueModalidadArbitraje(String descModalidad){
		Integer valueModalidad=null;
		for (SelectItem selectItem : listaParametros) {
			if(!selectItem.getValue().equals(""))
				if(selectItem.getLabel().trim().equals(descModalidad)){
					valueModalidad= Integer.parseInt(selectItem.getValue().toString());
				}
		}		
		return valueModalidad;
	}
	public String getLabelEstadoRegistro(Long idEstado){
		String labelEstado=null;
		for (SelectItem selectItem : listaEstadoRegistro) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idEstado){
					labelEstado= selectItem.getLabel();
				}
		}		
		return labelEstado;
	}
	public Long getValueEstadoRegistro(String labelEstado){
		Long valueEstado=null;
		for (SelectItem selectItem : listaEstadoRegistro) {
			if(!selectItem.getValue().equals(""))
				if(selectItem.getLabel().trim().equals(labelEstado)){
					valueEstado= Long.parseLong(selectItem.getValue().toString());
				}
		}		
		return valueEstado;
	}

	public String getLabelEstadoFiscalizacion(Long idEstado){
		String labelEstado=null;
		for (SelectItem selectItem : listaEstadoFiscalizacion) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idEstado){
					labelEstado= selectItem.getLabel();
				}
		}		
		return labelEstado;
	}
	public Long getValueEstadoFiscalizacion(String labelEstado){
		Long valueEstado=null;
		for (SelectItem selectItem : listaEstadoFiscalizacion) {
			if(!selectItem.getValue().equals(""))
				if(selectItem.getLabel().trim().equals(labelEstado)){
					valueEstado= Long.parseLong(selectItem.getValue().toString());
				}
		}		
		return valueEstado;
	}
	public String getLabelDocumentoID(Long idDoc){
		String labelDocumento=null;
		for (SelectItem selectItem : listaTipoDocumentoIdentidad) {
			if(!selectItem.getValue().equals(""))
				if(Long.parseLong(selectItem.getValue().toString())==idDoc){
					labelDocumento= selectItem.getLabel();
				}
		}		
		return labelDocumento;
		
	}
	
	/**
	 * Metodo que permite obtener listaReglas.
	 * @return listaReglas , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaReglas() {
		return listaReglas;
	}

	/**
	 * Permite actualizar listaReglas.
	 * @param listaReglas, tipo ArrayList<SelectItem>.
	 */
	public void setListaReglas(ArrayList<SelectItem> listaReglas) {
		this.listaReglas = listaReglas;
	}
	
	public Long getIdEstadoLista(String codigo){
		Long idEstado=null;
		for (EstadoDTO estado : listaEstadosGeneral) {
			if(estado.getCodEstado().equals(codigo)){
				idEstado=estado.getIdEstado();
			}
		}
		return idEstado;
	}
	/**Metodo que obtiene todos los Descriptores del Estado en un Array, siendo:
	 * [0]=Codigo de Estado
	 * [1]=Nombre de Estado
	 * [2]=Tag de Estado
	 * */
	public String[] getDescriptoresEstadoLista(Long idEstado){
		String[] nomEstado=new String[3];
		for (EstadoDTO estado : listaEstadosGeneral) {
			if(estado.getIdEstado()==idEstado){
				nomEstado[0]=estado.getCodEstado();
				nomEstado[1]=estado.getNomEstado();
				nomEstado[2]=estado.getTagEstado();
			}
		}
		return nomEstado;
	}

	/**Metodo que obtiene todos los Descriptores del Estado 
	 * */
	public String getDescripcionMotivoLista(Long idMotivo){
		String descMotivo=null;
		for (MotivoDTO motivo : listaMotivosGeneral) {
			if(motivo.getIdMotivo()==idMotivo){
				descMotivo= motivo.getDescMotivo();
			}
		}
		return descMotivo;
	}
	/**
	 * Metodo que permite obtener correlativos.
	 * @return correlativos , tipo HashMap<String,Long>.
	 */
	public HashMap<String, Long> getCorrelativos() {
		return correlativos;
	}

	/**
	 * Permite actualizar correlativos.
	 * @param correlativos, tipo HashMap<String,Long>.
	 */
	public void setCorrelativos(HashMap<String, Long> correlativos) {
		this.correlativos = correlativos;
	}

	/**
	 * Metodo que permite obtener listaGenero.
	 * @return listaGenero , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaGenero() {
		return listaGenero;
	}

	/**
	 * Permite actualizar listaGenero.
	 * @param listaGenero, tipo ArrayList<SelectItem>.
	 */
	public void setListaGenero(ArrayList<SelectItem> listaGenero) {
		this.listaGenero = listaGenero;
	}

	/**
	 * Metodo que permite obtener plazoSolicitud.
	 * @return plazoSolicitud , tipo Integer.
	 */
	public Integer getPlazoSolicitud() {
		return plazoSolicitud;
	}

	/**
	 * Permite actualizar plazoSolicitud.
	 * @param plazoSolicitud, tipo Integer.
	 */
	public void setPlazoSolicitud(Integer plazoSolicitud) {
		this.plazoSolicitud = plazoSolicitud;
	}

	/**
	 * Metodo que permite obtener listaEstadosIncidencia.
	 * @return listaEstadosIncidencia , tipo List<EstadoDTO>.
	 */
	public List<EstadoDTO> getListaEstadosIncidencia() {
		return listaEstadosIncidencia;
	}

	/**
	 * Permite actualizar listaEstadosIncidencia.
	 * @param listaEstadosIncidencia, tipo List<EstadoDTO>.
	 */
	public void setListaEstadosIncidencia(List<EstadoDTO> listaEstadosIncidencia) {
		this.listaEstadosIncidencia = listaEstadosIncidencia;
	}


	/**
	 * Metodo que permite obtener listaMotivosIncidencia.
	 * @return listaMotivosIncidencia , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaMotivosIncidencia() {
		return listaMotivosIncidencia;
	}

	/**
	 * Permite actualizar listaMotivosIncidencia.
	 * @param listaMotivosIncidencia, tipo ArrayList<SelectItem>.
	 */
	public void setListaMotivosIncidencia(
			ArrayList<SelectItem> listaMotivosIncidencia) {
		this.listaMotivosIncidencia = listaMotivosIncidencia;
	}

	/**
	 * Metodo que permite obtener listaMotivosReestablecer.
	 * @return listaMotivosReestablecer , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaMotivosReestablecer() {
		return listaMotivosReestablecer;
	}

	/**
	 * Permite actualizar listaMotivosReestablecer.
	 * @param listaMotivosReestablecer, tipo ArrayList<SelectItem>.
	 */
	public void setListaMotivosReestablecer(
			ArrayList<SelectItem> listaMotivosReestablecer) {
		this.listaMotivosReestablecer = listaMotivosReestablecer;
	}

	public ArrayList<SelectItem> getListaTipoDocumentoIdentidad() {
		return listaTipoDocumentoIdentidad;
	}

	public void setListaTipoDocumentoIdentidad(
			ArrayList<SelectItem> listaTipoDocumentoIdentidad) {
		this.listaTipoDocumentoIdentidad = listaTipoDocumentoIdentidad;
	}

	/**
	 * Metodo que permite obtener listaTipoFicha.
	 * @return listaTipoFicha , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoFicha() {
		return listaTipoFicha;
	}

	/**
	 * Permite actualizar listaTipoFicha.
	 * @param listaTipoFicha, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoFicha(ArrayList<SelectItem> listaTipoFicha) {
		this.listaTipoFicha = listaTipoFicha;
	}

	/**
	 * Metodo que permite obtener listaMotivosGeneral.
	 * @return listaMotivosGeneral , tipo List<MotivoDTO>.
	 */
	public List<MotivoDTO> getListaMotivosGeneral() {
		return listaMotivosGeneral;
	}

	/**
	 * Permite actualizar listaMotivosGeneral.
	 * @param listaMotivosGeneral, tipo List<MotivoDTO>.
	 */
	public void setListaMotivosGeneral(List<MotivoDTO> listaMotivosGeneral) {
		this.listaMotivosGeneral = listaMotivosGeneral;
	}

	/**
	 * Metodo que permite obtener listaOrganoEmision.
	 * @return listaOrganoEmision , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaOrganoEmision() {
		return listaOrganoEmision;
	}

	/**
	 * Permite actualizar listaOrganoEmision.
	 * @param listaOrganoEmision, tipo ArrayList<SelectItem>.
	 */
	public void setListaOrganoEmision(ArrayList<SelectItem> listaOrganoEmision) {
		this.listaOrganoEmision = listaOrganoEmision;
	}

	/**
	 * Metodo que permite obtener listaTipoActo.
	 * @return listaTipoActo , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaTipoActo() {
		return listaTipoActo;
	}

	/**
	 * Permite actualizar listaTipoActo.
	 * @param listaTipoActo, tipo ArrayList<SelectItem>.
	 */
	public void setListaTipoActo(ArrayList<SelectItem> listaTipoActo) {
		this.listaTipoActo = listaTipoActo;
	}

	/**
	 * Metodo que permite obtener listaZonas.
	 * @return listaZonas , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaZonas() {
		return listaZonas;
	}

	/**
	 * Permite actualizar listaZonas.
	 * @param listaZonas, tipo ArrayList<SelectItem>.
	 */
	public void setListaZonas(ArrayList<SelectItem> listaZonas) {
		this.listaZonas = listaZonas;
	}

	/**
	 * Metodo que permite obtener listaVias.
	 * @return listaVias , tipo ArrayList<SelectItem>.
	 */
	public ArrayList<SelectItem> getListaVias() {
		return listaVias;
	}

	/**
	 * Permite actualizar listaVias.
	 * @param listaVias, tipo ArrayList<SelectItem>.
	 */
	public void setListaVias(ArrayList<SelectItem> listaVias) {
		this.listaVias = listaVias;
	}	
	
}
